// 立即执行重写 alert
(function() {
  Object.defineProperty(window, 'alert', {
    configurable: false,
    enumerable: false,
    writable: false,
    value: function() {
      console.log('Alert被禁用了');
      return undefined;
    }
  });
})();

let modal = document.querySelector(".v-modal");
if (modal) {
  modal.style.position = "absolute";
  modal.style.zIndex = "-1000";
}
let dialog = document.querySelector("el-dialog__wrapper");
if (dialog) {
  modal.style.position = "absolute";
  dialog.style.zIndex = "-1000";
}
let gg = document.getElementsByTagName("ins");
if (gg.length > 0) {
  for (let item of gg) {
    item.style.setProperty("position", "absolute", "important");
    item.style.setProperty("z-index", "-1000", "important");
  }
}

// 创建一个函数来统一处理元素样式
const hideElement = (element) => {
  if (element) {
    element.style.setProperty("position", "absolute", "important");
    element.style.setProperty("z-index", "-1000", "important");
    element.style.setProperty("visibility", "hidden", "important");
    element.style.setProperty("display", "none", "important");
  }
};

// 创建一个函数来处理所有需要隐藏的元素
const handleElements = () => {
  // 处理遮罩层
  const modals = document.querySelectorAll(".v-modal");
  modals.forEach(hideElement);
  console.log(modals);
  // 处理对话框
  const dialogs = document.querySelectorAll(".el-dialog__wrapper");
  dialogs.forEach(hideElement);
  console.log(dialogs);
  // 处理广告
  const ads = document.getElementsByTagName("ins");
  Array.from(ads).forEach(hideElement);
  console.log(ads);
};

// 初始执行一次
handleElements();

// 创建 MutationObserver 来监听 DOM 变化
const observer = new MutationObserver((mutations) => {
  handleElements();
});

// 修改观察者的启动方式
function startObserver() {
  if (document.body) {
    observer.observe(document.body, {
      childList: true,
      subtree: true,
      attributes: true,
      attributeFilter: ['style', 'class']
    });
  } else {
    // 如果 body 还不存在，等待它创建完成
    document.addEventListener('DOMContentLoaded', () => {
      observer.observe(document.body, {
        childList: true,
        subtree: true,
        attributes: true,
        attributeFilter: ['style', 'class']
      });
    });
  }
}

// 启动观察者
startObserver();

// 覆盖原有的 checkDisplay 函数
window.checkDisplay = () => {};

// 创建一个函数来禁用 alert
function disableAlert() {
  // 使用多重方式确保 alert 被禁用
  try {
    // 方式1: defineProperty
    Object.defineProperty(window, 'alert', {
      configurable: false,
      enumerable: false,
      writable: false,
      value: function() {
        console.log('Alert被禁用了');
        return undefined;
      }
    });
  } catch(e) {
    console.log('方式1失败，尝试方式2');
    // 方式2: 直接覆盖
    window.alert = function() {
      console.log('Alert被禁用了');
      return undefined;
    };
  }
}

// 立即执行一次
disableAlert();

// 在不同的生命周期中都尝试禁用
document.addEventListener('DOMContentLoaded', disableAlert);
window.addEventListener('load', disableAlert);

// 定期检查确保 alert 始终被禁用
const checkInterval = setInterval(function() {
  if (window.alert.toString().indexOf('Alert被禁用了') === -1) {
    disableAlert();
  }
}, 100);

// 10秒后停止检查
setTimeout(() => {
  clearInterval(checkInterval);
}, 10000);


